﻿using SanFranciscoModel.Alumno;
using SanFranciscoModel.Nacionalidad;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SanFranciscoModel.Materia;
using SanFranciscoModel.Curso;
using SanFranciscoModel.Intermedias;
using SanFranciscoModel.Nota;
using SanFranciscoModel.Utiles;

namespace SanFrancisco
{
    public partial class ListarAlumno : Form
    {
        private int _DNI;
        private string Error;
        Curso _curso = new Curso();

        public ListarAlumno(int dni)
        {
            _DNI = dni;
            InitializeComponent();
        }

        private void ListarAlumno_Load_1(object sender, EventArgs e)
        {
            txtDni.Text = _DNI.ToString();
            CursoManager CursoManager = new SanFranciscoModel.Curso.CursoManager();

            _curso = CursoManager.getCursoActualbyDNI(_DNI);

            if (_curso.NombreCurso==null)
            {
            }
            else
            {
                lblCurso.Text = _curso.NombreCurso;
            }

            //TAB1
            CargarSexo();
            CargarTipoAlumno();
            CargarNacionalidades();
            CargarAlumno(_DNI);

            //TAB2
          //  MostrarNotaAlumno();
            MostrarNotaAlumno2();
            //TAB3
            MostrarAsistenciaAlumno();
            MostrarFamiliares();
        }


        private void MostrarNotaAlumno2()
        {
            AlumnoDataContext a = new AlumnoDataContext();
            gridNotasAlumno.AutoGenerateColumns = false;
            gridNotasAlumno.DataSource = a.AlumnosListarNotas(_DNI);
        }

        private void MostrarAsistenciaAlumno()
        {
            AlumnoDataContext a = new AlumnoDataContext();
            gridAsistencia.DataSource = a.AlumnosAsistencias(_DNI);

        }

        private void MostrarFamiliares()
        {
            AlumnoDataContext a = new AlumnoDataContext();
            gridFamiliar.DataSource = a.AlumnosFamiliares(_DNI);
        }

        private void MostrarNotaAlumno()
        {
            AlumnoManager AlumnoManager = new SanFranciscoModel.Alumno.AlumnoManager();
            List<AlumnoXMateriaXNota> AlumnoXMateriaXNotaList = new List<AlumnoXMateriaXNota>();

            AlumnoXMateriaXNotaList = AlumnoManager.getAlumnoXMateriaXNotaListByDNI(_DNI);

            gridNotasAlumno.ColumnCount = 5;
            gridNotasAlumno.Columns[0].Name = "Curso";
            gridNotasAlumno.Columns[1].Name = "Materia";
            gridNotasAlumno.Columns[2].Name = "Periodo";
            gridNotasAlumno.Columns[3].Name = "Calificacion";
            gridNotasAlumno.Columns[4].Name = "Conducta";

            string Curso = string.Empty;
            string Materia = string.Empty;
            string Periodo = string.Empty;
            string Calificacion = "Sin Informar";
            string Conducta = "Sin Informar";

            CursoManager CursoManager = new CursoManager();
            MateriaManager MateriaManager = new MateriaManager();
            TipoNotaManager TipoNotaManager = new TipoNotaManager();

            foreach (AlumnoXMateriaXNota a in AlumnoXMateriaXNotaList)
            {
                Curso = CursoManager.getCursoActualbyDNI(_DNI).idCurso.ToString();
                Materia = MateriaManager.getMateriasByIdMateria(a.idMateria).Materia1;
                Periodo = TipoNotaManager.getTipoNotaById(a.TipoNota).TipoNota1;
                if (a.NotaMateria != null)
                {
                    Calificacion = a.NotaMateria.ToString();
                }
                else
                {
                    Calificacion = "Sin Informar";
                }
                if (a.NotaConducta != null)
                {
                    Conducta = a.NotaConducta.ToString();
                }
                else
                {
                    Conducta = "Sin Informar";
                }


                gridNotasAlumno.Rows.Add(new object[] { Curso, Materia,Periodo,Calificacion,Conducta });

            }

        }

        private void CargarNacionalidades()
        {
            NacionalidadManager NacionalidadManager = new NacionalidadManager();
            cmbNacionalidad.ValueMember = "idPais";
            cmbNacionalidad.DisplayMember = "Pais";
            cmbNacionalidad.DataSource = NacionalidadManager.getNacionalidadAll();
        }

        private void CargarTipoAlumno()
        {
            AlumnoManager AlumnoManager = new AlumnoManager();
            cmbTipoAlumno.DisplayMember = "TipoAlumno1";
            cmbTipoAlumno.ValueMember = "idTipoAlumno";
            cmbTipoAlumno.DataSource = AlumnoManager.getTipoAlumnoAll();
        }

        private void CargarSexo()
        {
            UtilesManager Sexo = new UtilesManager();
            selSexo.DisplayMember = "Sexo1";
            selSexo.ValueMember = "idSexo";
            selSexo.DataSource = Sexo.getSexoAll();

        }

        private void CargarAlumno(int dni)
        {
            AlumnoManager AlumnoManager = new AlumnoManager();
            Alumno Alumno = new Alumno();

            Alumno = AlumnoManager.getAlumnobyDNI(dni);

            //Cargo el form
            txtNombre.Text = Alumno.Nombre;
            txtApellido.Text = Alumno.Apellido;
            dpFechaNac.Value = Alumno.FechaNacimiento.Date;
            txtDireccion.Text = Alumno.Direccion;
            selSexo.SelectedValue = Alumno.Sexo;

            cmbNacionalidad.SelectedValue = Alumno.Nacionalidad;
            cmbTipoAlumno.SelectedValue = Alumno.Tipo;

        }



        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void tabPage1_Click(object sender, EventArgs e)
        {

        }

        private void tabPage3_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}
